package interfaces;

import java.awt.Graphics;
import java.util.ArrayList;

import objects.ImageObject;
import extra.Position;
import graph.NodeWorld;



public interface WorldInterface {

	public void newWorld(int width , int height); 
	
	public WorldNodeInterface getNode(Position position);
	
	public ArrayList<WorldNodeInterface> getAdjacents(Position position);
	
	public ArrayList<WorldNodeInterface> getAdjacents(WorldNodeInterface node);
	
	public ArrayList<WorldNodeInterface> getFreeAdjacents(Position position);
	
	public ArrayList<WorldNodeInterface> getFreeAdjacents(WorldNodeInterface node);
	
	public boolean isFree(Position position);
	
	public boolean isFree(WorldNodeInterface node);
	
	public void calculateCollision(ImageObject collisionImage);
	
	public int getHeigth();
	
	public int getWidth();
	
	public int getRealHeigth();
	
	public int getRealWidth();
	
	public void paint(Graphics g);
	
	public NodeWorld generateGraph (Position position, int depthNumber);
	
	public boolean isInside(Position position);

	public void freeCollisionsNodes();
	
}
